import Router from 'koa-router'
import axios from './utils/axios'


//接口三步走
//1.在接口文件中写接口
//2.导出路由编写具体接口内容(不要忘记引入koa-router/axios)
//3.在index.js中注册接口

//接口前缀
let router = new Router({
  prefix: '/search'
})
//我的线上签名
const sign = 'b968df5d3f176f669e9ea5ff8e372a3b'

router.get('/top', async (ctx) => {
  let {
    status,
    data: {
      top
    }
  } = await axios.get(`http://cp-tools.cn/search/top`, {
    params: {
      //get传参有两种方式 一种是直接在url中写入就像geo接口中的方式
      //一种是使用params:{}  这两种都可以
      //get和post传参区别也就是 get需要使用{ params:{参数} } 而post直接 {参数}
      sign,
      //因为是get方式，所以通过query拿到get传的的值
      input: ctx.query.input,
      city: ctx.query.city
    }
  })
  if (status === 200) {
    ctx.body = {
      top
    }
  } else {
    ctx.body = {
      top: []
    }
  }
})

router.get('/hotPlace', async function (ctx) {
  //vuex是服务端和客户端共享的状态 所以在ssr中服务端也可以拿到vuex
  // get方式的参数只能使用query来取
  let city = ctx.store ? ctx.store.user.position.city : ctx.query.city
  //这里拿不到ctx.store 是因为这里我们使用了线上接口 从另一个接口（服务）上拿到了的 所以没有取到vuex的状态
  let {
    status,
    data: {
      result
    }
  } = await axios.get('http://cp-tools.cn/search/hotPlace', {
    params: {
      sign,
      //这里中文需不需要使用encodeURIComponent()方法进行编码 需要和服务端同事进行沟通
      city
    }
  })
  if (status === 200) {
    ctx.body = {
      result
    }
  } else {
    result = []
  }
})

router.get('/resultsByKeywords', async (ctx) => {
  const {
    city,
    keyword
  } = ctx.query
  let {
    status,
    data: {
      count,
      pois
    }
  } = await axios.get(`http://cp-tools.cn/search/resultsByKeywords`, {
    params: {
      city,
      keyword,
      sign
    }
  })
  ctx.body = {
    count: status === 200 ? count : 0,
    pois: status === 200 ? pois : []
  }
})



export default router
